<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TerminalFX</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        #terminal {
            position: absolute;
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body>
<div id="terminal"></div>
<script src="hterm_all.js"></script>
<script>

    function updatePrefs(prefs) {
        var prefsObject = JSON.parse(prefs);
        for (var key in prefsObject) {
            var value = prefsObject[key];
            if (window.t) {
                t.getPrefs().set(key, value);
            }
        }
    }

    function startTerminal() {
        hterm.defaultStorage = new lib.Storage.Memory();
        hterm.copySelectionToClipboard = function (document) {
            app.copy(document.getSelection().toString());
        };
        hterm.msg = function (name, args = [], string) {
            return string;
        };
        window.t = new hterm.Terminal("myterm");
        // t.getPrefs().set("send-encoding", "raw");
        // t.getPrefs().set("receive-encoding", "utf-8");
        //    t.getPrefs().set("use-default-window-copy", true);
        //    t.getPrefs().set("clear-selection-after-copy", true);
        //    t.getPrefs().set("copy-on-select", false);
        //    t.getPrefs().set("ctrl-c-copy", true);
        //    t.getPrefs().set("ctrl-v-paste", true);
        //    t.getPrefs().set("cursor-color", "black");
        //    t.getPrefs().set("background-color", "white");
        //    t.getPrefs().set("font-size", 12);
        //    t.getPrefs().set("foreground-color", "black");
        //    t.getPrefs().set("cursor-blink", false);
        //    t.getPrefs().set("scrollbar-visible", true);
        //    t.getPrefs().set("scroll-wheel-move-multiplier", 0.1);
        //    t.getPrefs().set("user-css", "/afx/resource/?p=css/hterm.css");
        //    t.getPrefs().set("enable-clipboard-notice",true);

        updatePrefs(app.getPrefs());

        t.onTerminalReady = function () {

            app.onTerminalInit();

            var io = t.io.push();

            io.onVTKeystroke = function (str) {
                app.command(str);
            };

            io.sendString = io.onVTKeystroke;

            io.onTerminalResize = function (columns, rows) {
                app.resizeTerminal(columns, rows);
            };

            t.installKeyboard();
            app.onTerminalReady();

        };

        t.decorate(document.querySelector('#terminal'));
    }

    document.addEventListener("DOMContentLoaded", function (event) {
        lib.init(startTerminal);
    });

</script>
</body>
</html>